Plataforma criada pela UniQ Hub facilita o monitoramento e a gestão de sistemas de transporte
A UniQ Hub, empresa especializada em soluções tecnológicas para mobilidade urbana instalada no Parque Tecnológico de Sorocaba (PTS), recebeu, do Instituto de Pesquisas Tecnológicas do Estado de São Paulo (IPT), a Declaração de Conformidade Técnica (DCT) para o HUB ITS. A DCT foi concedida no âmbito do edital de chamada pública nº 001/2025, voltado ao desenvolvimento de soluções para Cidades Inteligentes, no eixo de Mobilidade Urbana.
O HUB ITS é uma plataforma modular de Sistemas Inteligentes de Transporte (ITS) que centraliza, em um único ambiente, o monitoramento e a gestão operacional de frotas, estações, terminais e dispositivos conectados. A solução integra dados provenientes de diferentes subsistemas, como previsões de chegada, painéis de mensagem variável (PMVs), áudio, alarmes, telemetria e CFTV, oferecendo visão unificada da operação e informação em tempo real ao usuário.
Durante o processo de avaliação, o IPT destacou a capacidade da plataforma de centralizar o monitoramento operacional, ampliar a previsibilidade do transporte público e apoiar a tomada de decisão baseada em dados. Esses aspectos foram considerados alinhados aos objetivos do edital e aos princípios de mobilidade urbana inteligente.
A análise também reconheceu a arquitetura modular e escalável da solução, capaz de atender cidades de diferentes portes. Outro ponto ressaltado foi a aplicação prática já consolidada em operações reais, como nos sistemas de transporte de Sorocaba (SP) e Belo Horizonte (MG), reforçando o nível de maturidade e confiabilidade da tecnologia avaliada.
A DCT foi emitida a partir de avaliação documental, esclarecimentos técnicos complementares e demonstração da solução em ambiente real de operação. Segundo o parecer do instituto, a plataforma apresentou estágio avançado de maturidade tecnológica, com uso continuado em sistemas reais de transporte público coletivo.
“Receber a Declaração de Conformidade Técnica do IPT é um marco importante para a UniQ, pois evidencia que o HUB ITS já opera em um nível avançado de maturidade tecnológica e atende às demandas reais da mobilidade urbana. Seguimos focados em integrar dados, operação e informação ao usuário para apoiar cidades mais eficientes e inteligentes”, diz Fernando Cesar, CEO da UniQ.
Para o presidente do Parque Tecnológico de Sorocaba, Nelson Cancellara, a Declaração de Conformidade Técnica tem um peso significativo, porque não se trata apenas de um reconhecimento institucional, mas de uma validação técnica rigorosa. Isso porque confirma que a solução desenvolvida pela UniQ Hub atingiu um nível elevado de maturidade, segurança e aplicabilidade real. “Para a empresa, isso amplia credibilidade no mercado e fortalece sua capacidade de expansão para novos municípios. Para o Parque Tecnológico de Sorocaba, demonstra que o ambiente que construímos aqui é capaz de gerar soluções robustas, que saem do papel e operam efetivamente em sistemas públicos complexos”, aponta ele.
Sobre o PTS
O Parque Tecnológico de Sorocaba (PTS) é um ambiente de inovação que visa fomentar o desenvolvimento de empresas e projetos tecnológicos na Região Metropolitana de Sorocaba (RMS). Tem como objetivos principais promover tecnologias, bem como contribuir com o desenvolvimento social e econômico da RMS. Para tanto, cria um ambiente propício para a geração de empregos, o aumento da produtividade e a melhoria da qualidade de vida da população.
O PTS atua nas áreas automobilística, de automação industrial, biociências, educação e pesquisa, energias renováveis e Tecnologia da Informação (TIC). Com aproximadamente 1,8 milhão de metros quadrados de área total, possui 55 empresas instaladas e mais de 150 em seu ecossistema. Também trabalha em parceria com 19 instituições de ensino e apoia 55 startups.
$$ = $.noConflict();
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size …) from DOM elements
// (children of gallerySelector)
var parseThumbnailElements = function(el) {
var thumbElements = el.childNodes,
numNodes = thumbElements.length,
items = [],
figureEl,
childElements,
linkEl,
size,
item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; //
// include only element nodes
if(figureEl.nodeType !== 1) {
continue;
}
linkEl = figureEl.children[0]; // element
linkEl = figureEl; // element
// console.log(linkEl);
size = linkEl.getAttribute(‘data-size’).split(‘x’);
// create slide object
item = {
src: linkEl.getAttribute(‘href’),
w: parseInt(size[0], 10),
h: parseInt(size[1], 10)
};
if(figureEl.children.length > 1) {
//
item.title = figureEl.children[1].innerHTML;
}
if(linkEl.children.length > 0) {
// thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute(‘src’);
}
item.el = figureEl; // save link to element for getThumbBoundsFn
items.push(item);
}
return items;
};
// find nearest parent element
var closest = function closest(el, fn) {
return el && ( fn(el) ? el : closest(el.parentNode, fn) );
};
// triggers when user clicks on thumbnail
var onThumbnailsClick = function(e) {
e = e || window.event;
e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
var clickedListItem = closest(eTarget, function(el) {
return el.tagName === ‘FIGURE’;
});
clickedListItem = eTarget.parentNode;
if(!clickedListItem) {
return;
}
// find index of clicked item
var clickedGallery = clickedListItem.parentNode,
childNodes = clickedListItem.parentNode.childNodes,
numChildNodes = childNodes.length,
nodeIndex = 0,
index;
for (var i = 0; i = 0) {
openPhotoSwipe( index, clickedGallery );
}
return false;
};
// parse picture index and gallery index from URL (#&pid=1&gid=2)
var photoswipeParseHash = function() {
var hash = window.location.hash.substring(1),
params = {};
if(hash.length < 5) {
return params;
}
var vars = hash.split('&');
for (var i = 0; i < vars.length; i++) {
if(!vars[i]) {
continue;
}
var pair = vars[i].split('=');
if(pair.length getThumbBoundsFn section of docs for more info
var thumbnail = items[index].el.getElementsByTagName(‘img’)[0], // find thumbnail
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
},
shareButtons: [
{id:’download’, label:’Download image’, url:”, download:true}
],
// history & focus options are disabled on CodePen
// remove these lines in real life:
historyEnabled: false,
focus: false
};
if(disableAnimation) {
options.showAnimationDuration = 0;
}
// Pass data to PhotoSwipe and initialize it
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
// loop through all gallery elements and bind events
var galleryElements = document.querySelectorAll( gallerySelector );
for(var i = 0, l = galleryElements.length; i 0 && hashData.gid > 0) {
openPhotoSwipe( hashData.pid – 1 , galleryElements[ hashData.gid – 1 ], true );
}
};
// execute above function
initPhotoSwipeFromDOM(‘.pms-galeria’);
// All images need to be loaded for this plugin to work so
// we end up waiting for the whole window to load in this example
$$(window).load(function () {
$$(document).ready(function(){
collage();
$$(‘.pms-galeria’).collageCaption();
});
});
// Here we apply the actual CollagePlus plugin
function collage() {
$$(‘.pms-galeria img’).css(‘display’, ‘block’);
$$(‘.pms-galeria’).removeWhitespace().collagePlus({
‘fadeSpeed’ : 2000,
‘targetHeight’ : 150,
‘effect’ : ‘default’,
‘direction’ : ‘vertical’,
‘allowPartialLastRow’ : true
});
};
// This is just for the case that the browser window is resized
var resizeTimer = null;
$$(window).bind(‘resize’, function() {
// hide all the images until we resize them
$$(‘.pms-galeria .Image_Wrapper’).css(“opacity”, 0);
// set a timer to re-apply the plugin
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(collage, 200);
});
Fonte: Prefeitura de Sorocaba





